#pragma once

#include "Common.h"

class Random : public Singleton<Random>
{
public:
	explicit Random();
	virtual ~Random();

	void SetSeed();
	void SetSeed(u32 seed);
	u32 GetSeed() const;

	bool Bool() const;
	s32 Int(s32 min, s32 max) const;
	f32 Float(f32 min, f32 max) const;
	c8 Digit() const;
	c8 Letter() const;
	c8 LowerCaseLetter() const;
	c8 UpperCaseLetter() const;

protected:
	u32 mSeed;
};